<?php
//登录页面的专用控制器
namespace app\admin\controller;
use app\admin\common\controller\Base;
//这里模型的名字和控制器名字冲突了，所以就要给模型的名字起一个别名Usermodel
use app\admin\common\model\User as UserModel;
use think\facade\Request; //Request::param
use think\facade\Session;
class User extends Base
{
    
    //退出登录
    public function logout()
    {
        //全部session删除
        Session::clear();
        $this->success('成功退出登录','index/User/login');
    }
    
    //用户列表
    public function userList()
    {
        //1，获取到当前的用户id（在session中保存的有）和用户级别
        $data['user_id']=Session::get('user_id');
        $data['user_level']=Session::get('user_level');
        
        //2，获取当前管理员信息
        $userList=UserModel::where('id',$data['user_id'])->select();
        
        //3，如果检查到是超级管理员，就获取到全部管理员信息
        if($data['user_level'] == '管理员')
        {
            $userList=UserModel::select();
        }
        
        //4，模板赋值
        $this->view->assign('title','用户管理');
        $this->view->assign('empty','<span style="color:red>没有任何数据</span>');
        $this->view->assign('userList',$userList);
        
        //5，渲染输出
        return $this->view->fetch('userList');
    }
    
    //用户编辑
    public function userEdit()
    {
        //1，获取当前更新的用户的主键
        $userId=Request::param('id');
        //2，根据主键进行查询
        $userInfo=UserModel::where('id',$userId)->find();
        //3，设置编辑界面的模板变量
        $this->view->assign('title','编辑用户');
        $this->view->assign('userInfo',$userInfo);
        //4，渲染出编辑页面
        return $this->view->fetch('userEdit');
    }
    
    //执行用户保存的信息
    public function doEdit()
    {
        //1，获取到用户提交的信息
        $data=Request::post();
        //2，取出主键    
        $id=$data['id'];
        //3，将用户密码加密后在保存到$data中
        $userData=UserModel::where('id',$id)->find();
        $password=$userData['password'];
        if($password!==$data['password'])
        {
            $data['password']=sha1($data['password']);
        }
        
        //4，删除主键id，只有删除主键之后才能将新的数据加入到数据表中
        unset($data['id']);
        //5，执行更新操作
        if(UserModel::where('id',$id)->data($data)->update())
        {
            return $this->success('更新成功','admin/User/userList');
        }
        
    }
    
    //执行删除
    public function doDelete()
    {
        //1，获取当前要删除的主键id
        $id=Request::param('id');
        //2，执行删除
        if(UserModel::where('id',$id)->delete())
        {
            return $this->success('删除成功','admin/User/userList');
        }
        else
        {
            return $this->error('删除失败');
        }
    }
}









